为什么只能输入3次>??

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:32:50
main()
{char a[5],b[5],c,i,j;
for(i=0;i<5;i++)
scanf("%c",&a[i]); }
为什么只能输入3次???

回车符也算,加起来也有五个字符啦
你输入的时候不要一个字符一个回车。直接把字符全部输完再回车即可。

你可以这样
scanf("%c\n",&a[i]);

cn_xuyong 说的对,算回车的
C语言程序设计里,就有一节讲到这个容易出错的问题,
所以我们要在输入一个字符或字符串后用
getchar();吸收回车符,然后才可以输入下一个

楼上说的对
你的变量声明也不规范
将c,i,j声明成整型int型

或者你可以自己写一个函数来吸收回车符
void newline() //先定义符号ch
{
while(ch=='\n')
{
ch=getchar();
}
}
另外这函数你改一改也可以把多于的空格符号吸收,自己想想吧呵呵

是这样,因为你需要输入的是字符常量,而空格也算字符,那么当你输入:a空格b空格c空格d空格e回车 ,则空格也被当做字符输入给a[1]和a[3]了,因为a空格b空格c已经分别赋给了数组的5个元素了,后面的空格d空格e则没被接收了,因为已经接收了5个。这也违背了你想把a,b,c,d,e分别赋给数组5个元素的初衷。

我建议做适当修改scanf(" %c",&a[i]),注意%c前面加了空格。这使得空格被忽略接收。从而能完成你的目的。

希望对你有帮助